import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        isGlobalSpin: false, // 全局Loading
        /** 模型规则的 state*/
        modelRules: {
            matching: [],
            /** 清洗规则定义与字段*/
            cleanFieldRules: [],
            /** 字符转换规则*/
            fieldRulesChange: [],
            /** 字典格式*/
            dictionariesRule: {
                old: "",
                new: "",
                dic: [],
            }
        },
        /** 规则的存储接口值的state */
        initCleanFieldRules:[],
        initFieldRulesChange:[],
        /** 对应规则使用的外部数据*/
        srcFields:[],
        /** 清洗与字符转换过程中使用的内部数据*/
        targetFields: [],
        /** savematching接口返回的matchingId集合*/
        fieldId: [],
        /** 当前点击的模型id */
        modelId: '',
        /** 当前选中的内部字段*/
        momentTargetFields:"",
        /** 过程状态*/
        processStatus:'',
        /** 过程启动状态时候提示语*/
        processRunMessage:'*请先停止过程后在执行保存操作',
        /** 规则数目存储数组  */
        ruleArry:[],
        /** 内部数据对象中英文对照表  */
        innerData:[],
        /** 内部数据对象列表*/
        infoInnerData:[],
        /** es输出使用data */
        esTableData:[]
    },
    mutations: {
        /** set 全局loading设置*/
        changeGlobalSpin (state, data) {
            state.isGlobalSpin = data;
        },
        /** set 内部字段中英文对照表*/
        setInnerData(state, data) {
            state.innerData = data
        },
        /** set 内部数据对象列表*/
        setInfoInnerData(state, data) {
            state.infoInnerData = data
        },
        /** set 模型 （当前选中的内部字段）*/
        setMomentTargetFields(state, data) {
            state.momentTargetFields = data
        },
        setTargetFields(state, data) {
            state.targetFields = data
        },
        setSrcFields(state, data) {
            state.srcFields = data
        },
        /**set  字符Id查询*/
        setFieldId(state, data) {
            state.fieldId = data
        },
        setCleanFieldId(state, data) {
            state.fieldId = []
        },
        /** set 当前选中模型id*/
        setModelId(state, data) {
            state.modelId = data
        },
        /** 设置过程状态*/
        setProcessStatus(state, data){
            state.processStatus =data;
        },
        /** 切换模型时重置规则等信息 */
        setCleanRule(state, data) {
            state.modelRules = {
                matching: [],
                /** 清洗规则定义与字段*/
                cleanFieldRules: [],
                /** 字符转换规则*/
                fieldRulesChange: [],
                /** 字典格式*/
                dictionariesRule: {
                    old: "",
                    new: "",
                    dic: [],
                }
            },
            state.fieldId=[]
            state.ruleArry=[]
            state.momentTargetFields=""
            state.srcFields=[]
            state.targetFields=[]
        },
        setEsTableData(state, data) {
            state.esTableData = data
        },
    },
    actions: {},
    getters: {
        getGlobalSpin (state, data) {
            return  state.isGlobalSpin
        },
        getEsTableData(state, data) {
            return state.esTableData
        },
        /** 对应设定数目列表*/
        getRuleArry(state, data) {
            return state.ruleArry
        },
        /** get 模型 （当前选中的内部字段）*/
        getMomentTargetFields(state, data) {
            return state.momentTargetFields
        },
        /** 清洗与字符转换过程中使用的内部数据*/
        getTargetFields(state, data) {
            return state.targetFields
        },
        getSrcFields(state, data) {
            return state.srcFields
        },
        /**get  字符Id查询*/
        getFieldId(state, data) {
            return state.fieldId
        },
        getMatchingRules(state, data) {
            return state.modelRules.matching
        },
        getCleanFieldRules(state, data) {
            return state.modelRules.cleanFieldRules
        },
        fieldRulesChange(state, data) {
            return state.modelRules.fieldRulesChange
        },
        getDictionariesRule(state, data) {
            return state.modelRules.dictionariesRule
        },
        /** get 当前模型id*/
        getModelId(state, data) {
            return state.modelId
        },
        /** get 过程状态 */
        getProcessStatus(state, data) {
            return state.processStatus
        },
        /** get 过程状态具体信息 */
        getProcessRunMessage(state, data){
            return state.processRunMessage
        },
        /** get 清洗规则接口返回规则存储*/
        getInitCleanFieldRules(state, data){
            return state.initCleanFieldRules
        },
        /** get 字符转换接口返回规则存储*/
        getInitFieldRulesChange(state, data){
            return state.initFieldRulesChange
        },
        /** get 内部字段中英文对照表*/
        getInnerDataChange(state, data){
            return state.innerData
        },
        /** get 内部数据对象列表*/
        getInfoInnerData(state, data){
            return state.infoInnerData
        },

    }
})
